home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / c64-preservation-project / educational / intro_to_basic_part_1[cbm_1983].nbz / unit4drill (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  3.3 KB  |  129 lines

  1. 1 REM COPYRIGHT (C) ANDREW COLIN 1982
  2. 2 REM UNIT4DRILL(64)
  3. 3 POKE 53281,0
  4. 5 PRINT"[147]PLEASE SUPPLY A":PRINT"LEVEL OF DIFFICULTY"
  5. 6 PRINT"(1 IF YOU ARE TRYING":PRINT"FOR THE 1ST. TIME":INPUTDM
  6. 7 IFDM>0AND DM<9 THEN 9
  7. 8 PRINT"RANGE WRONG.TRY AGAIN":INPUTDM:GOTO7
  8. 9 DIMS%(15),S$(15)
  9. 10 FORBB=1TO20
  10. 11 U$=CHR$(34):D$=CHR$(32)
  11. 12 P=1:D=1:IFDM<1 THEN DM=1
  12. 13 PRINT"[147]";MID$("[159][156][158][129][149][150][151][152][153][154][155]",DM,1);"                        "
  13. 14 FORJ=1TO21:PRINT" [146]                       "
  14. 15 NEXTJ
  15. 16 PRINT"                        "
  16. 19 U$=CHR$(34):D$=CHR$(32)
  17. 20 P=1:D=1
  18. 22 PRINT"LEVEL OF DIFFICULTY":PRINT" = ";DM
  19. 23 PRINT" TYPE IN EXACTLY":PRINT" WHAT THE FOLLOWING"
  20. 25 PRINT" PRINT COMMAND WOULD"
  21. 26 PRINT" GIVE : -":PRINT" FOLLOW IT WITH"
  22. 27 PRINT" RETURN":PRINT
  23. 30 FORJ=1TO10:N%(J)=0:N$(J)="":M(J)=0:M$(J)="":MS$="":NEXT
  24. 35 Q$="+"+U$+" "+U$+"+"
  25. 36 A$="+"+U$+"&"+U$+"+"
  26. 40 P$="PRINT ":W$=""
  27. 50 IF RND(1)<0.5 THEN 70
  28. 60 GOSUB1000
  29. 65 P$=P$+X$:W$=W$+STR$(X)+D$:IFX<-100ORX>100THEN20
  30. 66 GOTO80
  31. 70 GOSUB2000:P$=P$+X$:W$=W$+Y$
  32. 80 IF RND(1)>.5ORD>=DMTHEN130
  33. 90 P$=P$+";"
  34. 100 IFRND(1)<.5THEN120
  35. 105 GOSUB1000
  36. 110 P$=P$+X$:W$=W$+STR$(X):IFX<-100ORX>100THEN20
  37. 115 GOTO130
  38. 120 GOSUB2000:P$=P$+X$:W$=W$+Y$
  39. 130 REM
  40. 140 FORE=20TO1STEP-1
  41. 150 FORJ=1TO10
  42. 160 IFN%(J)=ETHENPRINT"";N$(J)
  43. 170 IFM(J)=ETHEN PRINT"";M$(J)
  44. 180 NEXTJ,E
  45. 190 PRINT:PRINT"";P$
  46. 200 G$="":PRINT"";
  47. 201 GETH$:A=RND(1):IFH$=""THEN201
  48. 202 IFASC(H$)=13THEN210
  49. 203 IFASC(H$)<>20THEN 206
  50. 204 IFLEN(G$)=0THEN201
  51. 205 G$=MID$(G$,1,LEN(G$)-1):PRINT"[157] [157]";:GOTO201
  52. 206 PRINT H$;:G$=G$+H$:GOTO201
  53. 210 J=LEN(G$):IFRIGHT$(G$,1)=D$THENG$=MID$(G$,1,J-1):GOTO210
  54. 220 K=LEN(W$):IFRIGHT$(W$,1)=D$THENW$=MID$(W$,1,K-1):GOTO220
  55. 230 IFG$=W$THEN400
  56. 240 GG$=""
  57. 250 FORL=1TOJ
  58. 260 IFMID$(G$,L,1)<>D$THENGG$=GG$+MID$(G$,L,1)
  59. 270 NEXT L
  60. 280 WW$=""
  61. 290 FORL=1TOK
  62. 300 IFMID$(W$,L,1)<>D$THENWW$=WW$+MID$(W$,L,1)
  63. 310 NEXTL
  64. 320 IFGG$=WW$THEN 600
  65. 330 PRINT:PRINT"";"WRONG. THE ANSWER IS"
  66. 340 PRINT"";W$
  67. 345 IF DM>0.25THENDM=DM-0.25
  68. 350 PRINT:PRINT"";"HIT ANY KEY TO GO ON"
  69. 360 GETA$:IFA$=""THEN360
  70. 370 GOTO900
  71. 400 PRINT:PRINT"";"THAT'S  RIGHT!"
  72. 410 IFDM<9THENDM=DM+0.25
  73. 420 GOTO350
  74. 600 PRINT:PRINT"CORRECT EXCEPT FOR":PRINT"SPACING. THE RIGHT"
  75. 605 PRINT"ANSWER IS"
  76. 610 PRINT:PRINT"";W$
  77. 620 GOTO350
  78. 900 NEXTBB
  79. 910 PRINT"[147]IN 20 PROBLEMS YOUR":PRINT"LEVEL OF DIFFICULTY"
  80. 915 PRINT"HAS RISEN TO";DM
  81. 920 PRINT"ENTER IT NEXT TIME":PRINT"YOU RUN THIS PROGRAM"
  82. 930 END
  83. 1000 IFRND(1)<.7ANDD<DMTHEND=D+1:GOTO1030
  84. 1010 IF RND(1)<0.7 AND D<DM THEN D=D+1:GOTO1030
  85. 1020 GOSUB1500:RETURN
  86. 1030 GOSUB1500:XX$=X$:XX=X
  87. 1040 GOSUB1500
  88. 1050 IFRND(1)>0.6 THEN 1070
  89. 1060 X$=XX$+"+"+X$:X=XX+X:D=D-1:RETURN
  90. 1070 IFRND(1)<0.5THEN1090
  91. 1080 X$=XX$+"-"+X$:X=XX-X:RETURN
  92. 1090 X$=XX$+"*"+X$:X=XX*X:D=D-1:RETURN
  93. 1500 IFRND(1)<.5ANDD<DMTHEND=D+1:GOTO1600
  94. 1510 IFRND(1)<.5ANDD<DMTHEND=D+1:GOTO1600
  95. 1520 X=INT(10*RND(1))
  96. 1530 X$=CHR$(X+48):RETURN
  97. 1600 V=1+INT(10*RND(1))
  98. 1610 V=1+INT(10*RND(1))
  99. 1620 IFN%(V)>0ANDN$(V)=""THEN1610
  100. 1630 IFN%(V)=0THEN1650
  101. 1635 IFN%(V)<DTHEN1610
  102. 1640 X$=CHR$(V+64):X=NS%(V):D=D-1:RETURN
  103. 1650 N%(V)=D
  104. 1660 S%(P)=V:S%(P+1)=XX:S$(P)=XX$:P=P+2
  105. 1670 GOSUB1000
  106. 1680 P=P-2:V=S%(P):XX=S%(P+1):XX$=S$(P)
  107. 1690 NS%(V)=X:N$(V)=CHR$(V+64)+" = "+X$
  108. 1700 X$=CHR$(V+64):D=D-1:RETURN
  109. 2000 IFRND(1)<.5ANDD<DMTHEND=D+2:GOTO2030
  110. 2010 IFRND(1)<0.5AND D<DM THEND=D+2:GOTO2030
  111. 2020 GOSUB2500:RETURN
  112. 2030 GOSUB2500:XX$=X$:YY$=Y$
  113. 2040 GOSUB2500:IFRND(1)<0.5THEN2060
  114. 2050 X$=XX$+Q$+X$:Y$=YY$+" "+Y$:RETURN
  115. 2060 X$=XX$+A$+X$:Y$=YY$+"&"+Y$:RETURN
  116. 2500 IFRND(1)<.5ANDD<DMTHEND=D+2:GOTO2590
  117. 2510 IFRND(1)<0.5 ANDD<DMTHEND=D+2:GOTO2590
  118. 2520 Y$=CHR$(26*RND(1)+65)
  119. 2580 X$=CHR$(34)+Y$+CHR$(34):RETURN
  120. 2590 V=1+INT(10*RND(1))
  121. 2600 IFM(V)>0ANDM$(V)=""THEN 2590
  122. 2610 IFM(V)=0THEN2630
  123. 2620 X$=CHR$(V+64)+"$":Y$=MS$(V):RETURN
  124. 2630 M(V)=D:S%(P)=V:S$(P)=XX$:S$(P+1)=YY$:P=P+2
  125. 2640 GOSUB2000
  126. 2650 P=P-2:V=S%(P):XX$=S$(P):YY$=S$(P+1)
  127. 2660 MS$(V)=Y$:M$(V)=CHR$(V+64)+"$="+X$
  128. 2670 X$=CHR$(V+64)+"$":RETURN
  129.